package com.newly.common.base.entity.device.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * paas_device
 * @author 
 */
@ApiModel(value="com.newly.common.base.entity.user.po.DevicePo设备表")
@Data
@TableName("paas_device")
public class DevicePo implements Serializable {
    /**
     * 设备id
     */
    @ApiModelProperty(value="设备id")
    @JsonSerialize(using= ToStringSerializer.class)
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 站点id
     */
    @ApiModelProperty(value="站点id")
    @TableField(value = "site_id")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long siteId;

    /**
     * 设备名称
     */
    @ApiModelProperty(value="设备名称")
    @TableField(value = "name")
    private String name;

    /**
     * 创建人id
     */
    @ApiModelProperty(value="创建人id")
    @TableField(value = "create_user_id")
    private String createUserId;

    /**
     * 设备类型 1-网关、地磅  3-摄像头
     */
    @ApiModelProperty(value="设备类型 1-网关、地磅  3-摄像头")
    @TableField(value = "type")
    private int type;

    /**
     * 设备状态 0-离线 1-在线
     */
    @ApiModelProperty(value="设备状态 0-离线 1-在线")
    @TableField(value = "device_status")
    private String deviceStatus;

    /**
     * 是否可用 0-不可用 1-可用
     */
    @ApiModelProperty(value="是否可用 0-不可用 1-可用")
    @TableField(value = "is_available")
    private String isAvailable;

    /**
     * 是否删除 0-正常 1-已删
     */
    @ApiModelProperty(value="是否删除 0-正常 1-已删")
    @TableField(value = "is_deleted")
    private String isDeleted;

    /**
     * 修改时间
     */
    @ApiModelProperty(value="修改时间")
    @TableField(value = "update_time")
    private String updateTime;

    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    @TableField(value = "create_time")
    private String createTime;

    /**
     * 国标id
     */
    @ApiModelProperty(value="国标id")
    @TableField(value = "gb_id")
    private String gbId;

    /**
     * 设备ip
     */
    @ApiModelProperty(value="设备ip")
    @TableField(value = "ip")
    private String ip;

    /**
     * 设备端口
     */
    @ApiModelProperty(value="设备端口")
    @TableField(value = "port")
    private int port;

    /**
     * 访问设备的用户名
     */
    @ApiModelProperty(value="访问设备的用户名")
    @TableField(value = "username")
    private String username;

    /**
     * 访问设备的密码
     */
    @ApiModelProperty(value="访问设备的密码")
    @TableField(value = "password")
    private String password;

    /**
     * 网关设备类型
     */
    @ApiModelProperty(value="网关设备类型")
    @TableField(value = "gateway_type")
    private int gatewayType;

    /**
     * 设备通道列表
     */
    @ApiModelProperty(value="设备通道列表")
    @TableField(value = "channel_used")
    private String channelUsed;

    /**
     * 最大通道数
     */
    @ApiModelProperty(value="最大通道数")
    @TableField(value = "channel_max")
    private int channelMax;

    /**
     * 协议
     */
    @ApiModelProperty(value="协议")
    @TableField(value = "protocol")
    private int protocol;

    /**
     * 按位掩码值
     */
    @ApiModelProperty(value="按位掩码值")
    @TableField(value = "channel_support")
    private String channelSupport;

    /**
     * 设备槽位
     */
    @ApiModelProperty(value="设备槽位")
    @TableField(value = "slot")
    private int slot;

    /**
     * 网关设备id
     */
    @ApiModelProperty(value="网关设备id")
    @TableField(value = "product_key")
    private String productKey;

    /**
     * 设备标识别名 0：无标识 1：车牌识别摄像机 2：轮轴识别摄像机
     */
    @ApiModelProperty(value="设备标识别名")
    @TableField(value = "type_alias")
    private int typeAlias;

    /**
     * 站点名称
     */
    @TableField(exist = false)
    private String siteName;

    /**
     * 站点负责人
     */
    @TableField(exist = false)
    private String siteAgent;

    /**
     * 站点负责人电话
     */
    @TableField(exist = false)
    private String phone;

    /**
     * 站点编号
     */
    @TableField(exist = false)
    private String siteCode;
    /**
     * 站点位置
     */
    @TableField(exist = false)
    private String location;

    private static final long serialVersionUID = 1L;
}